home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 2 / CU Amiga Magazine's Super CD-ROM 02 (1996)(EMAP Images)(GB)[!][issue 1996-04].iso / magazine / amiga_e / epp / docs / epp.history < prev   
Text File  |  1980-01-05  |  10KB  |  233 lines

  1. ============================================================================
  2.  
  3.                         EPP V1.1 - E Preprocessor.
  4.              Copyright ©1993 Barry Wills.  All rights reserved.
  5.  
  6. ============================================================================
  7.  
  8.    HISTORY.
  9.    ~~~~~~~
  10.  
  11.     V0.02a - Released 9 May 93.
  12.     ~~~~~~
  13.     1.  Adding code to store file handles in the list and leave files open.
  14.         This greatly reduces code size and process time, especially in
  15.         processProcSections () which had to reopen files and read through
  16.         the declarations.
  17.  
  18.  
  19.     V0.03a - Released 11 May 93.
  20.     ~~~~~~
  21.     1.  Modified procedure getModule () to use a project's main program
  22.         file as the starting point (instead of the separate directives
  23.         file.)  The procedure then recursively descends into module
  24.         declarations parsing the global declaration sections from the
  25.         procedural sections into separate files.  The first file (specified
  26.         on the command line) gets all the definitions and declarations, the
  27.         second (temporary) file gets all procedures.  At the end of the
  28.         program the temporary file is appended to the specified output file.
  29.  
  30.     2.  Runtime progress is sent to stdout.  The final output file is
  31.         stripped of all comments (except those within procedure bodies), and
  32.         some EPP module information is inserted at strategic locations.
  33.  
  34.     3.  Later occurrences of redundant modules are ignored.
  35.  
  36.     4.  Superfluous PROC main () procedures are omitted in all but the main
  37.         module whose name is supplied as the command-line argument.  An E
  38.         comment is inserted wherever this occurs.
  39.  
  40.     V0.04a - Released 13 May 93.
  41.     ~~~~~~
  42.     1.  Comment stripping did not work in all cases, leaving dangling open-
  43.         and close-comments.  Decided to copy all comments since I had to
  44.         track them anyway.
  45.  
  46.     2.  Quoted open- and close-comment symbols were being erroneously
  47.         counted.  Implemented open- aod close-string and -character
  48.         tabulators to fix this.  (Could have led to shitloads of misread
  49.         literals.  Eesh!)
  50.  
  51.     V0.10b - Released 15 May 93.
  52.     ~~~~~~
  53.     1.  Removed from alpha status.
  54.  
  55.     V0.11b - Released 21 May 93.
  56.     ~~~~~~
  57.     1.  Optimized appendProcsToDefs () for speed.  Immense gain in speed
  58.         achieved using buffered I/O instead of String I/O.
  59.  
  60.  
  61.     V0.12b - Released 26 May 93.
  62.     ~~~~~~
  63.     1.  EPP did not recognize RAISE as a defs keyword.  Consequently, all
  64.         modules beginning with a RAISE declaration aborted the process.
  65.  
  66.     2.  Removed the offending section that said "I don't know what to do
  67.         with *token name*".  Now if EPP doesn't recognize a keyword in the
  68.         defs section the line will just be written as is.
  69.  
  70.     3.  Tweeked procedures getModule () and copyDefs () to check for the
  71.         two-character string ';\n' after returning from getModule ().  The
  72.         sourceLine is trimmed after a return from getModule () because only
  73.         a partial line would be processed (say, if we had the line:
  74.  
  75.             PMODULE 'mod1'; PMODULE 'mod2';
  76.  
  77.         the two statements are processed by calls to getModule ().  This
  78.         would leave a semicolon at the end of the line, which was being
  79.         printed alone on a line when the call to getModule () returned.
  80.         (!@#$%)
  81.  
  82.     4.  Corrected serious oversight in copyProc () and getModule () that
  83.         allowed quoted keyword 'PROC' to be erroneously recognized as the
  84.         keyword PROC.  This surfaced while I was attempting to convert EPP
  85.         to use PMODULE statements.
  86.  
  87.     5.  Converted EPP to use PMODULES.  This actually reduced the size of
  88.         the executable since I had some duplication of code.
  89.  
  90.     6.  Prettied up comments a little.
  91.  
  92.  
  93.     V0.13b - Released 30 May 93.
  94.     ~~~~~~
  95.     1.  Modified IO routines to speed up process.  This thing was just too
  96.         sluggish!  A significant gain in speed was achieved.
  97.  
  98.     2.  Bug found in function copyProc ():  when a PMODULE containing only a
  99.         one-line PROC was copied in the program locked up because it was too
  100.         stupid to quit.  After examining the logic, I decided that it would
  101.         be too involving to checking the syntax close enough to catch mis-
  102.         matched PROC ... ENDPROC like I wanted too.  We'll just have to be
  103.         careful.  Sorry!
  104.  
  105.     3.  Added switch to silence EPP progress messages.
  106.  
  107.     4.  Added switch to set input buffer size.  If you have the RAM, use a
  108.         large buffer.
  109.  
  110.     5.  Added switch to increase the source line length.  This must be >=
  111.         the input buffer size since a smaller line length could cause a
  112.         keyword to be split.  The program is friendly where this is
  113.         concerned:  it warns you if you transgress and will adjust the
  114.         buffer if you agree to it.  (I may try to figure this out later if
  115.         memory consumption turns out to be a problem.)
  116.  
  117.  
  118.     V0.14b - Released 08 Jun 93.
  119.     ~~~~~~
  120.     1.  Removed the constraints on line length -vs- buffer size.  After
  121.         close examination and much trying to break it, I decided the
  122.         safeguard wasn't necessary.  There is now a mimimum of 20-byte
  123.         file buffers and source lines, and NO MAXIMUM LIMIT.  So if you got
  124.         the RAM, use it!  :-)
  125.  
  126.         This warning still stands:  line length must be large enough to
  127.         accommodate the longest line of source.  If a line is split, a
  128.         keyword or a comment delimiter could be missed, and your source
  129.         output may be chewed.  :-(
  130.  
  131.     2.  Corrected token parser to recognize PROC main(), for all you guys
  132.         out there who don't like typing unnecessary spaces.  |-)  Thanks to
  133.         Son Le for finding this one.
  134.  
  135.     V1.0 - Released 14 Jun 93.
  136.     ~~~~
  137.     1.  Removed from beta status.
  138.  
  139.     2.  Added Turbo mode which simply copies the procs section of a module
  140.         instead of parsing it to the end.  Massively improved speed.
  141.  
  142.     V1.1 - Released 26 Jun 93.
  143.     ~~~~
  144.     1.  Modified:  parsing routines, to include the addition of
  145.         skipToValidToken().  This major contribution belongs to Son Huu Le,
  146.         desperately trying to accommodate his poor, overworked 68000 :-)
  147.         Thanks Son Le!
  148.  
  149.     2.  Modified:  startPos becomes PTR TO CHAR .vs. LONG (now renamed to
  150.         simply pos.)  This eliminates most of the need to pass the string
  151.         pointer sourceLine *and* the current index along with it.  Resulted
  152.         in slight speed increase.
  153.  
  154.     3.  Added the OPT TURBO directive to start TURBO mode within a single
  155.         module for the duration of that module.
  156.  
  157.     4.  Fixed bug in read() that dropped last line of a module if the line
  158.         did not end with a linefeed (ascii 10).  No more program crashes due
  159.         to this error. :)
  160.  
  161.     5.  Replaced calls to write() with Write() for speed.
  162.  
  163.     6.  Modified program to process CtrlC().  I avoided this previously
  164.         because it crashed my machine when handling recursive
  165.         Raise (exception)s.  A compromise was needed, so I added a control
  166.         variable and a test in the main loop of getModule(), and exited
  167.         in a more controlled fashion.  Still can't figure out why raising
  168.         exceptions is trashing my fileHandles (!@#$)
  169.  
  170.     7.  Son Huu Le modified appendProcsToDefs() for speed and cosmetics.
  171.  
  172.     V1.2 - Finished 22 Feb 94.  Not released.
  173.     ~~~~
  174.     1.  Made WbenchToFront() an option.
  175.     2.  Optimized for slight speed gain.
  176.  
  177.     V1.3 - Beta release 5 Mar 94.
  178.     ~~~~
  179.     1.  Mega-mondo optimization for speed.  Now twice as fast as ooooold
  180.         amatuerish pre-1.3 releases.  (Consequently, it takes more ram, too.)
  181.     2.  Removed buffer-size option.
  182.     3.  Removed line-length option (it was a kludge, anyway).
  183.     4.  "-s" switch to make TOTALLY silent.
  184.  
  185.     V1.4 - Beta release 7 Mar 94.
  186.     ~~~~
  187.     1.  Added crude inline macro identifier expansion.
  188.  
  189.     V1.4a - Beta release 12 Mar 94.
  190.     ~~~~~
  191.     1.  Filename args reduced to one, main input module.  Output filename is
  192.         now optional, defaults to temp_main.e.
  193.     2.  EC invoked upon final output source.
  194.     3.  "-e" command line switch to specify options to pass to EC.
  195.     4.  "-v" switch to make verbose, defaults to silent.
  196.     5.  Writes a map file to T: for accurate reporting of module name and
  197.         line number when compilation error occurs.
  198.     6.  "-s" switch to save final output file.
  199.     7.  "-n" to suppress compilation.
  200.     8.  Too, too many bugs squashed.  Surprised they didn't bite already! :-(
  201.  
  202.     V1.4b - Beta release ?? Mar 94.
  203.     ~~~~~
  204.     1.  Abandoned macro identifier expansion.  Not enough return for the
  205.         cost in speed. :-(
  206.     2.  "-x" command line switch to execute an intermediate command (after
  207.         preprocessing and before compilation).
  208.     3.  Numerous misc bug fixes.
  209.  
  210.     V1.4c - Beta release ?? Mar 94.
  211.     ~~~~~
  212.     1.  Reworked MODULE and PMODULE statement parsing to allow parsing of
  213.         module name lists.
  214.     2.  Omit duplicate MODULE declarations.
  215.     3.  Optimizations for speed and mem usage.
  216.     4.  A few misc bug fixes.
  217.  
  218.     V1.4d - Release 24 Mar 94.
  219.     ~~~~~
  220.     1.  Fixed MODULE/PMODULE statement parsing:  v1.4c didn't like comments
  221.         mixed in.  What a fraggin' headache! :-/
  222.     2.  Added ability to recover from failure to rename final executable
  223.         because the temp volume is different than the source volume.  In
  224.         such a case the final executable is copied+deleted instead.
  225.     3.  Fixed copyProc() to check for PMODULE statement.  These were being
  226.         ignored when they directly followed a one-line function since
  227.         skipToValidToken() treated them like a non-event inside a proc.
  228.         This fix costs some speed, but allows more flexible program structure.
  229.  
  230.  
  231.  
  232. ============================================================================
  233.